
function [value, isterminal, direction] = Bcr4bp_EventEMRot2DEarthRp(tau , xx , aux)
%
% 积分终止条件，EMRot，近地点（距地心 < 5e4 km）
%
% 作者：张晨
% 邮箱：chenzhang@csu.ac.cn
% 单位：中国科学院空间应用工程与技术中心，空间探索室
% 时间：2021年10月01日
%%%%%%%%%%%%%%%%%%%%%%%%

% ---------------- 载入参数 ----------------
mu = aux.EMRot.mu;
mus = aux.EMRot.mus;
as = aux.EMRot.as;
ws = aux.EMRot.ws;
l_star = aux.dim.EMRot_l;

xc = xx(1);
yc = xx(2);
vxc = xx(3);
vyc = xx(4);

%% --------------- 卫星加速度 ---------------
dxx = Bcr4bp_EqmEMRot2D(tau , xx , aux);
axc = dxx(3);
ayc = dxx(4);

% 远P1点/近P1点终止条件
stopCond1 = (xc + mu) * vxc + yc * vyc;

% 远P1点条件
cons1 = (vxc^2 + (xc + mu) * axc + vyc^2 + yc * ayc) > 0;

% 和P1距离条件（3 - 5倍地月距）
R_P1 = sqrt((xc + mu)^2 + yc^2);
cons2 = R_P1 < (5e4 / l_star);

%% --------------- 满足所有约束条件 ---------------
if cons1 && cons2
    
    value = stopCond1;
    
else
    
    value = [];
    
end

% isterminal = 0; % 是否执行积分终止条件(多次)
isterminal = 1; % 是否执行积分终止条件(单次)

direction = 0; % 积分终止方向，由正向负或者由负向正

end
